<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 定义一个方法，接受一个数组参数，并对数组中元素进行去重操作，返回去重后的新数组
        function uniqueArr(arr){
            let temp = [];
            for (let i = 0; i < arr.length; i++) {
                if( temp.indexOf( arr[i] ) === -1 ){
                    temp.push( arr[i] );
                }
            }
            return temp;
        }

        let newArr =uniqueArr( ["a","b","c","a","d","c"] );
        console.log(newArr);
        


        // 定义一个方法，接受一个字符串，实现对字符串中字符出现次数的统计，并返回一个记录统计结果的新数组
        //      例如 ：
        //          "abcacd"
        //      返回 ： 
        //          [
        //              { value:"a",count:2 },
        //              { value:"b",count:1 },
        //              { value:"c",count:2 },
        //              { value:"d",count:1 },
        //          ]
        function charCount( str ){
            // 1. 将字符串以字符分解成数组，通过排序将相同的字符连续记录
            let chars = str.split("").sort();
            let tempArr = [];
            let countObj = null;
            // 2. 循环字符时，相同字符是连续出现的
            for (let i = 0; i < chars.length; i++) {
                // console.log(chars[i]);
                // 3. 当记录对象是 null 表示此次循环的字符是第一次出现
                if(countObj==null){
                    // 补充新的统计对象
                    countObj = { 
                        value:chars[i],
                        count:1
                    };
                    tempArr.push(countObj);
                }else{
                    // 在 countObj 对象不为null时，判断当前循环到字符是否和正在统计的字符是同一个字符
                    if( countObj.value==chars[i] ){
                        // 如果是 为重复出现的字符 +1
                        countObj.count++;
                    }else{
                        // 如果不是 重置 统计对象
                        countObj = null;
                        // 让当前字符重新循环
                        i--;
                    }
                }
            }
            return tempArr;
        }

        let counts = charCount( "abcacd" );
        console.log(counts);
        
    </script>
</head>
<body>
    
</body>
</html>